package com.zkh.myutils.page;

/**
 * 创建分页信息需要用到的属性。<br><br>
 * 如有以下一段分页信息的html代码（当前为第2页）：
 * <pre>
 * &lt;ul class="pageinfo">
 *    &lt;li>&lt;a href="?pageIndex=1">1&lt;/a>&lt;/li>
 *    &lt;li>&lt;a>2&lt;/a>&lt;/li>
 *    &lt;li>&lt;a href="?pageIndex=3">3&lt;/a>&lt;/li>
 * &lt;/ul>
 * </pre>
 * 本类中的字段和方法基于这段代码进行注释。
 * @author zkh
 */
public class PageInfoAttr {
	/**
	 * 查询参数，通过request.getQueryString()获取。跳转链接需要绑定入参
	 */
	private String queryString;
	/**
	 * 包含链接的html模板。如示例代码中的第1、3页，包含了href属性。其中href值用{link}占位符替换，具体页码用{pageIndex}占位符替换。如：
	 * <pre>
	 * &lt;li>&lt;a href="{link}">{pageIndex}&lt;/a>&lt;/li>
	 * </pre>
	 */
	private String linkHtml;
	/**
	 * 不包含链接的html模板。如示例代码中的第2页，不需要跳转，所以不包含href属性。其中，具体页码用{pageIndex}占位符替换。如：
	 * <pre>
	 * &lt;li>&lt;a>{pageIndex}&lt;/a>&lt;/li>
	 * </pre>
	 */
	private String noLinkHtml;
	/**
	 * 上一页、下一页展示的文本及html。如：<br>
	 * {"<", ">", "&lt;li>&lt;a href=\"{link}\">{pageIndex}&lt;/a>&lt;/li>", "&lt;li>&lt;a>{pageIndex}&lt;/a>&lt;/li>"}、<br>
	 * 或者{"上一页", "下一页", "&lt;li>&lt;a href=\"{link}\">{pageIndex}&lt;/a>&lt;/li>", "&lt;li>&lt;a>{pageIndex}&lt;/a>&lt;/li>"}，第一项为上一页展示的文本，第二项为下一页展示的文本，第三
	 * 项为可跳转html，第四项为不可跳转html（第三、四项可选）。为null时，不展示上一页和下一页。
	 */
	private String[] prevNextTexts;
	/**
	 * 首页、尾页展示的文本及html。如：{"首页", "末页", "&lt;li>&lt;a href=\"{link}\">{pageIndex}&lt;/a>&lt;/li>"}，第一项为首页展示的文本，第二项为尾页展示的文本，第三项为可跳转的html（可选）。为null时，不展示首页和尾页。
	 */
	private String[] beginEndTexts;
	/**
	 * 外部Html内容，即包裹页码的外层元素，即示例中的{"&lt;ul class="pageinfo">", "&lt;/ul>"}，第一项为左边包裹的内容，第二项为右边包裹的内容。null无外层包裹元素。
	 */
	private String[] outerHtml;
	/**
	 * 页码展示的数量，默认只展示5页
	 */
	private int pageNumber;
	
	/**
	 * 构造方法
	 * @param queryString 查询参数
	 * @param linkHtml 包含链接的html模板
	 * @param noLinkHtml 不包含链接的html模板
	 * @param outerHtml 外部Html内容
	 */
	public PageInfoAttr(String queryString, String linkHtml, String noLinkHtml, String[] outerHtml) {
		this(queryString, linkHtml, noLinkHtml, null, null, outerHtml);
	}
	
	/**
	 * 构造方法
	 * @param queryString 查询参数
	 * @param linkHtml 包含链接的html模板
	 * @param noLinkHtml 不包含链接的html模板
	 * @param prevNextTexts 上一页、下一页展示的文本
	 * @param beginEndTexts 首页、尾页展示的文本
	 * @param outerHtml 外部Html内容
	 */
	public PageInfoAttr(String queryString, String linkHtml, String noLinkHtml, String[] prevNextTexts, String[] beginEndTexts, String[] outerHtml) {
		this(queryString, linkHtml, noLinkHtml, prevNextTexts, beginEndTexts, outerHtml, 5);
	}
	
	/**
	 * 构造方法
	 * @param queryString 查询参数
	 * @param linkHtml 包含链接的html模板
	 * @param noLinkHtml 不包含链接的html模板
	 * @param prevNextTexts 上一页、下一页展示的文本
	 * @param beginEndTexts 首页、尾页展示的文本
	 * @param outerHtml 外部Html内容
	 * @param pageNumber 页码展示的数量
	 */
	public PageInfoAttr(String queryString, String linkHtml, String noLinkHtml, String[] prevNextTexts, String[] beginEndTexts, String[] outerHtml, int pageNumber) {
		this.queryString = queryString;
		this.linkHtml = linkHtml;
		this.noLinkHtml = noLinkHtml;
		this.prevNextTexts = prevNextTexts;
		this.beginEndTexts = beginEndTexts;
		this.outerHtml = outerHtml;
		this.pageNumber = pageNumber;
	}
	
	public String getQueryString() {
		return queryString;
	}
	public void setQueryString(String queryString) {
		this.queryString = queryString;
	}
	public String getLinkHtml() {
		return linkHtml;
	}
	public void setLinkHtml(String linkHtml) {
		this.linkHtml = linkHtml;
	}
	public String getNoLinkHtml() {
		return noLinkHtml;
	}
	public void setNoLinkHtml(String noLinkHtml) {
		this.noLinkHtml = noLinkHtml;
	}
	public String[] getPrevNextTexts() {
		return prevNextTexts;
	}
	public void setPrevNextTexts(String[] prevNextTexts) {
		this.prevNextTexts = prevNextTexts;
	}
	public String[] getBeginEndTexts() {
		return beginEndTexts;
	}
	public void setBeginEndTexts(String[] beginEndTexts) {
		this.beginEndTexts = beginEndTexts;
	}
	public String[] getOuterHtml() {
		return outerHtml;
	}
	public void setOuterHtml(String[] outerHtml) {
		this.outerHtml = outerHtml;
	}
	public int getPageNumber() {
		return pageNumber;
	}
	public void setPageNumber(int pageNumber) {
		this.pageNumber = pageNumber;
	}
}
